package com.anyou.mall.goo.goodsSpecs.mapper;

import java.util.List;
import com.anyou.mall.goo.goodsSpecs.domain.GooGoodsSpecs;
import com.anyou.mall.goo.specs.domain.SpeSpecs;
import com.anyou.mall.order.vo.SpecsVal;
import com.anyou.mall.order.vo.SpecsVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * 商品规格Mapper接口
 *
 * @author ylj
 * @date 2022-03-29
 */
public interface GooGoodsSpecsMapper extends BaseMapper<GooGoodsSpecs>
{
    /**
     * 查询商品规格
     *
     * @param goodsSpecsId 商品规格主键
     * @return 商品规格
     */
    public GooGoodsSpecs selectGooGoodsSpecsByGoodsSpecsId(Long goodsSpecsId);

    /**
     * 查询商品规格列表
     *
     * @param gooGoodsSpecs 商品规格
     * @return 商品规格集合
     */
    public List<GooGoodsSpecs> selectGooGoodsSpecsList(GooGoodsSpecs gooGoodsSpecs);

    /**
     * 新增商品规格
     *
     * @param gooGoodsSpecs 商品规格
     * @return 结果
     */
    public int insertGooGoodsSpecs(GooGoodsSpecs gooGoodsSpecs);

    /**
     * 修改商品规格
     *
     * @param gooGoodsSpecs 商品规格
     * @return 结果
     */
    public int updateGooGoodsSpecs(GooGoodsSpecs gooGoodsSpecs);

    /**
     * 删除商品规格
     *
     * @param goodsSpecsId 商品规格主键
     * @return 结果
     */
    public int deleteGooGoodsSpecsByGoodsSpecsId(Long goodsSpecsId);

    /**
     * 批量删除商品规格
     *
     * @param goodsSpecsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGooGoodsSpecsByGoodsSpecsIds(Long[] goodsSpecsIds);

    /**
     * 根据商品id查询规格list
     * @param goodsId
     * @return
     */
    List<SpeSpecs> getListByGoodsId(Long goodsId);

    /**
     * 查询商品规格
     * @param goodsId
     * @return
     */
    List<SpecsVo> selectSpecList(Long goodsId);

    /**
     * 根据商品规格id查询商品值
     * @param goodsSpecsId
     * @return
     */
    List<SpecsVal> selectSpecValueList(String goodsSpecsId);
}
